ostree.git
14 years agognomeos: Make run script transparently update existing FS image
Colin Walters [Sun, 4 Dec 2011 19:56:21 +0000 (14:56 -0500)]
gnomeos: Make run script transparently update existing FS image

This is noticeably faster.

14 years agognomeos: commit-yocto-build.sh: Directly import tar files
Colin Walters [Sun, 4 Dec 2011 19:55:33 +0000 (14:55 -0500)]
gnomeos: commit-yocto-build.sh: Directly import tar files

Oh wow...this is fast.

14 years agocore: Fix handling of hardlinks for tar commits
Colin Walters [Sun, 4 Dec 2011 19:38:30 +0000 (14:38 -0500)]
core: Fix handling of hardlinks for tar commits

We were creating files with the wrong name.  Add a test.

14 years agocore: Support for committing from any libarchive-supported format
Colin Walters [Sun, 4 Dec 2011 17:14:08 +0000 (12:14 -0500)]
core: Support for committing from any libarchive-supported format

We really want the ability to take a .tar.gz and directly import
it into a repository, without creating a temporary filesystem tree.

First, doing it this way is significantly faster.  Also, this allows
us to handle importing tar files with e.g. uid 0 files into packed
repositories as non-root, which is very useful for tests and builds.

14 years agocore: Fix a memory leak in checkout
Colin Walters [Sun, 4 Dec 2011 19:08:21 +0000 (14:08 -0500)]
core: Fix a memory leak in checkout

14 years agocore: Handle NULL xattrs in packfile generation, throw error on invalid mode
Colin Walters [Sun, 4 Dec 2011 18:11:21 +0000 (13:11 -0500)]
core: Handle NULL xattrs in packfile generation, throw error on invalid mode

14 years agocore: Correctly map S_ISDIR to G_FILE_TYPE_DIRECTORY
Colin Walters [Sun, 4 Dec 2011 18:10:37 +0000 (13:10 -0500)]
core: Correctly map S_ISDIR to G_FILE_TYPE_DIRECTORY

14 years agocore: Clean up filename utility API
Colin Walters [Sun, 4 Dec 2011 17:12:34 +0000 (12:12 -0500)]
core: Clean up filename utility API

Remove more unused functions, and change pathname splitting to handle
more cases like duplicate //, and to throw an error on .. as a filename.

14 years agocore: Initialize checksums for non-regular files, handle NULL xattrs
Colin Walters [Sun, 4 Dec 2011 17:11:29 +0000 (12:11 -0500)]
core: Initialize checksums for non-regular files, handle NULL xattrs

14 years agocore: Delete some dead utility code
Colin Walters [Sat, 3 Dec 2011 00:54:53 +0000 (19:54 -0500)]
core: Delete some dead utility code

14 years agocore: New ot_transfer_out_value() macro
Colin Walters [Fri, 2 Dec 2011 23:17:06 +0000 (18:17 -0500)]
core: New ot_transfer_out_value() macro

This makes out values considerably less typing.

14 years agocore: Ensure we clean up leftover directories during merge
Colin Walters [Fri, 2 Dec 2011 22:58:45 +0000 (17:58 -0500)]
core: Ensure we clean up leftover directories during merge

(Not sure why this regressed)

14 years agocore: Fix packed file creation
Colin Walters [Fri, 2 Dec 2011 22:49:57 +0000 (17:49 -0500)]
core: Fix packed file creation

We were calculating the wrong checksum, and also mistakenly
not using packed files in archive mode for non-regular files.

14 years agocore: Don't use g_file_delete(), it calls into g_vfs_get_default()
Colin Walters [Fri, 2 Dec 2011 19:32:25 +0000 (14:32 -0500)]
core: Don't use g_file_delete(), it calls into g_vfs_get_default()

For some (probably crazy) reason.  Skipping this and calling
unlink() directly makes 'strace' MUCH smaller.

14 years agocore: Avoid reading regular file data twice when archiving
Colin Walters [Fri, 2 Dec 2011 19:23:01 +0000 (14:23 -0500)]
core: Avoid reading regular file data twice when archiving

14 years agocore: Further unify API to create files
Colin Walters [Fri, 2 Dec 2011 16:22:32 +0000 (11:22 -0500)]
core: Further unify API to create files

We now have just one place which writes to the filesystem.  Wrap a
temporary file allocation API on top of that.

14 years agocore: Use g_io_error_from_errno() to ensure we have more useful error codes
Colin Walters [Fri, 2 Dec 2011 16:39:21 +0000 (11:39 -0500)]
core: Use g_io_error_from_errno() to ensure we have more useful error codes

14 years agocore: Move pack file parsing into core, add ostree_create_file_from_input() API
Colin Walters [Fri, 2 Dec 2011 15:11:09 +0000 (10:11 -0500)]
core: Move pack file parsing into core, add ostree_create_file_from_input() API

This moves us closer to consistently passing around a triple of:
  (GFileInfo *info, GVariant *xattrs, GInputStream *content)
Which will help the libarchive work.

14 years agocore: Tweak dir metadata importing code for libarchive work
Colin Walters [Fri, 2 Dec 2011 00:37:47 +0000 (19:37 -0500)]
core: Tweak dir metadata importing code for libarchive work

This will allow us to share a bit more code.

14 years agocore: Modify pack file importer to also optionally checksum
Colin Walters [Fri, 2 Dec 2011 00:23:12 +0000 (19:23 -0500)]
core: Modify pack file importer to also optionally checksum

For future work on importing from an archive.

14 years agocore: Add ot_gfile_create_tmp_symlink()
Colin Walters [Fri, 2 Dec 2011 00:20:54 +0000 (19:20 -0500)]
core: Add ot_gfile_create_tmp_symlink()

In some cases we'll need the ability to create a symbolic link, then
actually import it.

14 years agocore: Propagate GCancellable a bit from the import APIs
Colin Walters [Thu, 1 Dec 2011 03:20:25 +0000 (22:20 -0500)]
core: Propagate GCancellable a bit from the import APIs

14 years agocore: Drop some dead code from packfile writing, expose GInputStream API too
Colin Walters [Thu, 1 Dec 2011 03:15:05 +0000 (22:15 -0500)]
core: Drop some dead code from packfile writing, expose GInputStream API too

We never actually dropped into the bits to write metadata as packfiles,
because such a thing doesn't exist.

Also add a GInputStream-based API for writing packfiles.

14 years agocore: Extract stage_and_checksum() internal API
Colin Walters [Thu, 1 Dec 2011 02:15:46 +0000 (21:15 -0500)]
core: Extract stage_and_checksum() internal API

This will be used for staging both metadata and data consistently
before actually importing it.

14 years agocore: Add ot_gfile_create_tmp() to utils, use it
Colin Walters [Thu, 1 Dec 2011 01:14:24 +0000 (20:14 -0500)]
core: Add ot_gfile_create_tmp() to utils, use it

14 years agorepo: Don't call g_hash_table_destroy on a NULL hash
Colin Walters [Thu, 1 Dec 2011 01:23:10 +0000 (20:23 -0500)]
repo: Don't call g_hash_table_destroy on a NULL hash

14 years agocore: Split pull functionality into separate ostree-pull binary
Colin Walters [Wed, 30 Nov 2011 14:21:14 +0000 (09:21 -0500)]
core: Split pull functionality into separate ostree-pull binary

This is to avoid everything depending on libsoup.

14 years agocore: Make libostree.so an installed library
Colin Walters [Tue, 29 Nov 2011 23:25:07 +0000 (18:25 -0500)]
core: Make libostree.so an installed library

This will make it easier to have multiple binaries.

14 years agoostbuild: Relicense under LGPLv2+, tweak artifact generation
Colin Walters [Tue, 29 Nov 2011 21:15:04 +0000 (16:15 -0500)]
ostbuild: Relicense under LGPLv2+, tweak artifact generation

14 years agocore: Use ot_clear_checksum()
Colin Walters [Tue, 29 Nov 2011 19:06:54 +0000 (14:06 -0500)]
core: Use ot_clear_checksum()

14 years agootutil: New utility functions
Colin Walters [Tue, 29 Nov 2011 18:42:05 +0000 (13:42 -0500)]
otutil: New utility functions

14 years agocore: Remove an unused variable
Colin Walters [Tue, 29 Nov 2011 01:45:27 +0000 (20:45 -0500)]
core: Remove an unused variable

14 years agocore: checksum builtin: Actually quit main loop on error too
Colin Walters [Tue, 29 Nov 2011 00:34:54 +0000 (19:34 -0500)]
core: checksum builtin: Actually quit main loop on error too

14 years agocore: Make commit always operate on directory contents, not file list
Colin Walters [Sun, 27 Nov 2011 23:03:05 +0000 (18:03 -0500)]
core: Make commit always operate on directory contents, not file list

This simplifies things significantly, at some cost in flexibility.
We'll later add the ability to e.g. filter out files by regular
expression.

14 years agocore: Some tweaks to ls output
Colin Walters [Mon, 28 Nov 2011 15:17:49 +0000 (10:17 -0500)]
core: Some tweaks to ls output

14 years agognomeos: Switch to using pseudo for commits
Colin Walters [Mon, 28 Nov 2011 01:43:44 +0000 (20:43 -0500)]
gnomeos: Switch to using pseudo for commits

This is noticeably faster.

One side effect here is that xattrs are empty, which is actually
a good thing.

14 years agognomeos: Pull in pseudo into -dev image
Colin Walters [Mon, 28 Nov 2011 01:34:30 +0000 (20:34 -0500)]
gnomeos: Pull in pseudo into -dev image

As a potential 'fakeroot' implementation.

14 years agoostbuild: Don't run fakeroot if we are root
Colin Walters [Mon, 28 Nov 2011 01:31:23 +0000 (20:31 -0500)]
ostbuild: Don't run fakeroot if we are root

For efficiency reasons, as well as a quick shortcut to avoid pulling
fakeroot into the gnomeos yocto layer.

14 years agocore: Fix a compiler warning
Colin Walters [Mon, 28 Nov 2011 01:15:07 +0000 (20:15 -0500)]
core: Fix a compiler warning

14 years agocore: Add ls builtin
Colin Walters [Mon, 28 Nov 2011 01:10:48 +0000 (20:10 -0500)]
core: Add ls builtin

14 years agocore: Don't default to "master" for show, there is no default branch anymore
Colin Walters [Sun, 27 Nov 2011 23:46:11 +0000 (18:46 -0500)]
core: Don't default to "master" for show, there is no default branch anymore

14 years agoconfigure: Actually disable soup-gnome if not found
Colin Walters [Sun, 27 Nov 2011 23:08:18 +0000 (18:08 -0500)]
configure: Actually disable soup-gnome if not found

14 years agognomeos: include -dev packages too in -dev image
Colin Walters [Sun, 27 Nov 2011 23:03:22 +0000 (18:03 -0500)]
gnomeos: include -dev packages too in -dev image

Otherwise we don't get headers and stuff...

14 years agocore: Add asynchronous checksum API, use it in checksum builtin
Colin Walters [Sun, 27 Nov 2011 22:21:04 +0000 (17:21 -0500)]
core: Add asynchronous checksum API, use it in checksum builtin

14 years agognomeos: Add basic device files in /dev
Colin Walters [Sun, 27 Nov 2011 18:12:22 +0000 (13:12 -0500)]
gnomeos: Add basic device files in /dev

So we're more usable in a chroot for compiling software.

14 years agognomeos: Fetch ostree from file:/// URI
Colin Walters [Sun, 27 Nov 2011 18:08:32 +0000 (13:08 -0500)]
gnomeos: Fetch ostree from file:/// URI

This means anyone not using /src/ostree for the checkout will have
to change it, but it's way less annoying for me not to have to push
changes to git.

14 years agoostbuild: Split nice/logger program out, merge make/makeinstall into one executable
Colin Walters [Sun, 27 Nov 2011 18:07:33 +0000 (13:07 -0500)]
ostbuild: Split nice/logger program out, merge make/makeinstall into one executable

14 years agodaemon: Allow running as non-root in test mode
Colin Walters [Sun, 27 Nov 2011 16:34:03 +0000 (11:34 -0500)]
daemon: Allow running as non-root in test mode

14 years agognomeos: Prefix branch names with -yocto to clarify their origin
Colin Walters [Fri, 25 Nov 2011 17:02:03 +0000 (12:02 -0500)]
gnomeos: Prefix branch names with -yocto to clarify their origin

Also add git to the dev image.

14 years agognomeos: Add ncurses to base
Colin Walters [Fri, 25 Nov 2011 17:01:38 +0000 (12:01 -0500)]
gnomeos: Add ncurses to base

14 years agocore: Minor code cleanup
Colin Walters [Fri, 25 Nov 2011 17:01:05 +0000 (12:01 -0500)]
core: Minor code cleanup

14 years agoostbuild: Rename osbuild to ostbuild, clean up old C files
Colin Walters [Fri, 25 Nov 2011 17:00:16 +0000 (12:00 -0500)]
ostbuild: Rename osbuild to ostbuild, clean up old C files

14 years agocore: Ad ot_clear_gvariant(), use it
Colin Walters [Tue, 22 Nov 2011 15:20:10 +0000 (10:20 -0500)]
core: Ad ot_clear_gvariant(), use it

This saves us a conditional.

14 years agognomeos: Make python actually work, install bash by default
Colin Walters [Tue, 22 Nov 2011 15:03:12 +0000 (10:03 -0500)]
gnomeos: Make python actually work, install bash by default

14 years agocore: A bit more daemon work
Colin Walters [Tue, 22 Nov 2011 15:02:49 +0000 (10:02 -0500)]
core: A bit more daemon work

14 years agocore: Move merge dirs code into gio utils
Colin Walters [Mon, 21 Nov 2011 20:03:09 +0000 (15:03 -0500)]
core: Move merge dirs code into gio utils

14 years agocore: Stub out a system daemon
Colin Walters [Mon, 21 Nov 2011 01:55:24 +0000 (20:55 -0500)]
core: Stub out a system daemon

14 years agognomeos: Check out both -base and -dev roots
Colin Walters [Mon, 21 Nov 2011 01:50:14 +0000 (20:50 -0500)]
gnomeos: Check out both -base and -dev roots

This makes it easier to boot into either.

14 years agoostree-init: Also trim trailing newline from arguments
Colin Walters [Mon, 21 Nov 2011 01:49:45 +0000 (20:49 -0500)]
ostree-init: Also trim trailing newline from arguments

Otherwise the parsed argument is corrupted.

14 years agoTODO: Update
Colin Walters [Mon, 21 Nov 2011 01:49:15 +0000 (20:49 -0500)]
TODO: Update

14 years agognomeos: Add -x86 tag to builds
Colin Walters [Sat, 19 Nov 2011 19:03:18 +0000 (14:03 -0500)]
gnomeos: Add -x86 tag to builds

Since later we'll want -x86_64 too.

14 years agocore: Rework argument parsing
Colin Walters [Sat, 19 Nov 2011 19:02:21 +0000 (14:02 -0500)]
core: Rework argument parsing

Default to /sysroot/ostree/repo when run as root.  Also better
handle the requires-repo flag.

14 years agognomeos: local-clone into built image
Colin Walters [Sat, 19 Nov 2011 15:52:17 +0000 (10:52 -0500)]
gnomeos: local-clone into built image

This way we have the whole history in the image, and we can start
to demo things like switching roots, pulling etc.

14 years agocore: Ensure data is properly initialized
Colin Walters [Sat, 19 Nov 2011 15:45:53 +0000 (10:45 -0500)]
core: Ensure data is properly initialized

Avoids a crash if we bail early.

14 years agocore: Add local-clone builtin
Colin Walters [Fri, 18 Nov 2011 23:50:53 +0000 (18:50 -0500)]
core: Add local-clone builtin

This is useful for converting between e.g. archive and non-archive
repositories.

14 years agocore: Also chown() after unpacking objects
Colin Walters [Fri, 18 Nov 2011 23:50:29 +0000 (18:50 -0500)]
core: Also chown() after unpacking objects

14 years agocore: Switch to GFile* for unpacking and storing objects
Colin Walters [Fri, 18 Nov 2011 21:14:01 +0000 (16:14 -0500)]
core: Switch to GFile* for unpacking and storing objects

14 years agocore: Expose API to get repository tmpdir
Colin Walters [Fri, 18 Nov 2011 21:01:28 +0000 (16:01 -0500)]
core: Expose API to get repository tmpdir

14 years agocore: Rework object iteration API to be GFile based and pass more data
Colin Walters [Fri, 18 Nov 2011 20:21:32 +0000 (15:21 -0500)]
core: Rework object iteration API to be GFile based and pass more data

It makes more sense to have e.g. the details of .packfile naming
inside the repo, and pass the expected checksum and type.

14 years agocore: Skip an unnecessary unlink() call
Colin Walters [Fri, 18 Nov 2011 14:41:36 +0000 (09:41 -0500)]
core: Skip an unnecessary unlink() call

14 years agocore: Have single "overwrite" flag instead of ignore_exists+force pair
Colin Walters [Fri, 18 Nov 2011 14:37:25 +0000 (09:37 -0500)]
core: Have single "overwrite" flag instead of ignore_exists+force pair

The default is always ignore_exists.  Also port the internals here
to use more GIO code, and stop using *at syscall variants since they're
only useful if used 100%.

14 years agocore: Convert public get_object_path() to GFile*
Colin Walters [Fri, 18 Nov 2011 14:04:25 +0000 (09:04 -0500)]
core: Convert public get_object_path() to GFile*

14 years agocore: More cleanup of GIO utility API
Colin Walters [Fri, 18 Nov 2011 13:42:18 +0000 (08:42 -0500)]
core: More cleanup of GIO utility API

14 years agocore: Use ot_gfile_ prefix for new local GFile creation function
Colin Walters [Fri, 18 Nov 2011 13:10:23 +0000 (08:10 -0500)]
core: Use ot_gfile_ prefix for new local GFile creation function

14 years agocore: Remove last user of g_file_new()
Colin Walters [Fri, 18 Nov 2011 13:02:19 +0000 (08:02 -0500)]
core: Remove last user of g_file_new()

14 years agocore: Add checksum builtin
Colin Walters [Fri, 18 Nov 2011 12:29:13 +0000 (07:29 -0500)]
core: Add checksum builtin

This necessitated reworking things so that builtins can specify no
--repo is required.

14 years agocore: Make checksum API also operate on directories
Colin Walters [Fri, 18 Nov 2011 11:34:54 +0000 (06:34 -0500)]
core: Make checksum API also operate on directories

14 years agocore: CHANGE CHECKSUM ALGORITHM, port checksum API to GFile
Colin Walters [Fri, 18 Nov 2011 00:32:01 +0000 (19:32 -0500)]
core: CHANGE CHECKSUM ALGORITHM, port checksum API to GFile

This commit originally was to port ostree_stat_and_checksum_file() to
GFile*, but I noticed that the checksum code was reading data in host
endianness.  Fix that while we're here.

This invalidates all existing repositories.

14 years agocore: Convert metadata parsing API to GFile
Colin Walters [Thu, 17 Nov 2011 23:36:57 +0000 (18:36 -0500)]
core: Convert metadata parsing API to GFile

14 years agocore: Use GFile for xattr API
Colin Walters [Thu, 17 Nov 2011 23:30:02 +0000 (18:30 -0500)]
core: Use GFile for xattr API

14 years agognomeos: Have commit-yocto-build make more assumptions
Colin Walters [Thu, 17 Nov 2011 23:29:32 +0000 (18:29 -0500)]
gnomeos: Have commit-yocto-build make more assumptions

This is so it's easier to use.

14 years agocore: Use ot_gfile_get_path_cached() pervasively
Colin Walters [Thu, 17 Nov 2011 23:23:36 +0000 (18:23 -0500)]
core: Use ot_gfile_get_path_cached() pervasively

This requires no free() calls and is just better.

14 years agognomeos: Refactor build so we can have separate runtime/devel images
Colin Walters [Thu, 17 Nov 2011 18:24:52 +0000 (13:24 -0500)]
gnomeos: Refactor build so we can have separate runtime/devel images

14 years agocore: Fix pull to actually download files too
Colin Walters [Thu, 17 Nov 2011 15:40:55 +0000 (10:40 -0500)]
core: Fix pull to actually download files too

14 years agocore: Should write remote refs in refs/<remote>/<branch>
Colin Walters [Thu, 17 Nov 2011 15:40:01 +0000 (10:40 -0500)]
core: Should write remote refs in refs/<remote>/<branch>

Not just refs/<branch>, otherwise multiple remotes conflict.

14 years agocore: Allow resolving e.g. "origin/master" as a rev
Colin Walters [Thu, 17 Nov 2011 15:36:04 +0000 (10:36 -0500)]
core: Allow resolving e.g. "origin/master" as a rev

Also:

* Disallow .. in revs to avoid looking outside where we should be
* Allow resolving empty revs

14 years agocore: Validate file names read from directory variants
Colin Walters [Thu, 17 Nov 2011 04:23:30 +0000 (23:23 -0500)]
core: Validate file names read from directory variants

In a future where we pull data from remote servers, we don't want
to allow path uplinks.

14 years agocore: diff: Correctly handle files changing type
Colin Walters [Thu, 17 Nov 2011 04:09:32 +0000 (23:09 -0500)]
core: diff: Correctly handle files changing type

14 years agotests: Fix number of tests
Colin Walters [Thu, 17 Nov 2011 03:51:56 +0000 (22:51 -0500)]
tests: Fix number of tests

14 years agocore: Flesh out diff a bit more
Colin Walters [Thu, 17 Nov 2011 03:43:26 +0000 (22:43 -0500)]
core: Flesh out diff a bit more

Now correctly notices changes to directory metadata (not just
contents).

14 years agocore: Fix a minor memory leak
Colin Walters [Thu, 17 Nov 2011 03:50:14 +0000 (22:50 -0500)]
core: Fix a minor memory leak

14 years agognomeos: Some tweaks to image content
Colin Walters [Thu, 17 Nov 2011 02:47:56 +0000 (21:47 -0500)]
gnomeos: Some tweaks to image content

14 years agocore: Implement diff command
Colin Walters [Wed, 16 Nov 2011 22:48:29 +0000 (17:48 -0500)]
core: Implement diff command

14 years agognomeos: Mounts work, far fewer boot errors
Colin Walters [Wed, 16 Nov 2011 17:51:24 +0000 (12:51 -0500)]
gnomeos: Mounts work, far fewer boot errors

14 years agognomeos: Import copy of initscripts from Poky edison release
Colin Walters [Tue, 15 Nov 2011 21:31:33 +0000 (16:31 -0500)]
gnomeos: Import copy of initscripts from Poky edison release

14 years agognomeos: sysvinit actually runs inside the chroot
Colin Walters [Tue, 15 Nov 2011 20:19:31 +0000 (15:19 -0500)]
gnomeos: sysvinit actually runs inside the chroot

14 years agocore: Add --print-packfile argument for show
Colin Walters [Tue, 15 Nov 2011 20:16:38 +0000 (15:16 -0500)]
core: Add --print-packfile argument for show

Just another debugging tool.

14 years agocore: We actually want rdev, not dev for devices
Colin Walters [Tue, 15 Nov 2011 20:15:46 +0000 (15:15 -0500)]
core: We actually want rdev, not dev for devices

14 years agocore: Actually delete old libostree
Colin Walters [Tue, 15 Nov 2011 15:44:23 +0000 (10:44 -0500)]
core: Actually delete old libostree

14 years agognomeos: Starting to get something bootable with yocto
Colin Walters [Tue, 15 Nov 2011 15:44:03 +0000 (10:44 -0500)]
gnomeos: Starting to get something bootable with yocto